package com.cipe.cmrs.model;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

/**
 * 
 * @author Incepio
 * 
 */
@Entity
@Table(name = "audits")
@SuppressWarnings("serial")
public class Audits extends BaseAuditEntity {

    @Transient
    private String message;
    @Transient
    private String prc;

    @OneToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "projectid")
    private Cipeproject cipeproject;

    private Boolean newgrantee;
    private BigDecimal riskassessment = BigDecimal.ZERO;
    private Boolean smponly;
    private Boolean internalmonitoring;
    private Boolean interimaudit;
    private Boolean finalaudit;

    // Internal Monitoring
    private Boolean imprequired;
    @Column(name = "impnotes", length = 500)
    private String impnotes;

    @OneToMany(mappedBy = "audits", cascade = { CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE })
    private List<Imp> imps;

    // Interim Audit
    private String iasolicitor;

    @Temporal(TemporalType.TIMESTAMP)
    private Date iaselectionmemodue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iaselectionmemoreceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iaselectionmemoapproved;

    private String iafirm;

    @Temporal(TemporalType.TIMESTAMP)
    private Date iadue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iareceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iaapproved;

    @Temporal(TemporalType.TIMESTAMP)
    private Date iarevisedresolutiondue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iarevisedresolutionreceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iarevisedresolutionapproved;

    @Temporal(TemporalType.TIMESTAMP)
    private Date iarevisedresolutionoffindingsdue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iarevisedresolutionoffindingsreceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iarevisedresolutionoffindingsapproved;

    @Temporal(TemporalType.TIMESTAMP)
    private Date iaresolutionoffindingsdue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iaresolutionoffindingsreceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iaresolutionoffindingsapproved;

    @Column(name = "iamemonotes", length = 500)
    private String iamemonotes;
    @Temporal(TemporalType.TIMESTAMP)
    private Date iaclosedtofile;

    // Final Audit
    private String fasolicitor;
    @Temporal(TemporalType.TIMESTAMP)
    private Date faselectionmemoduedate;
	@Temporal(TemporalType.TIMESTAMP)
    private Date faselectionmemodue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date faselectionmemoreceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date faselectionmemoapproved;

    private String fafirm;

    @Temporal(TemporalType.TIMESTAMP)
    private Date fadue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date fareceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date faapproved;

    @Temporal(TemporalType.TIMESTAMP)
    private Date farevisedresolutiondue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date farevisedresolutionreceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date farevisedresolutionapproved;

    @Temporal(TemporalType.TIMESTAMP)
    private Date farevisedresolutionoffindingsdue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date farevisedresolutionoffindingsreceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date farevisedresolutionoffindingsapproved;

    @Temporal(TemporalType.TIMESTAMP)
    private Date faresolutionoffindingsdue;
    @Temporal(TemporalType.TIMESTAMP)
    private Date faresolutionoffindingsreceived;
    @Temporal(TemporalType.TIMESTAMP)
    private Date faresolutionoffindingsapproved;

    @Column(name = "famemonotes", length = 500)
    private String famemonotes;
    @Temporal(TemporalType.TIMESTAMP)
    private Date faclosedtofile;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getPrc() {
        return prc;
    }

    public void setPrc(String prc) {
        this.prc = prc;
    }

    public Cipeproject getCipeproject() {
        return cipeproject;
    }

    public void setCipeproject(Cipeproject cipeproject) {
        this.cipeproject = cipeproject;
    }

    public Boolean getNewgrantee() {
        return newgrantee;
    }

    public void setNewgrantee(Boolean newgrantee) {
        this.newgrantee = newgrantee;
    }

    public BigDecimal getRiskassessment() {
        return riskassessment;
    }

    public void setRiskassessment(BigDecimal riskassessment) {
        this.riskassessment = riskassessment;
    }

    public Boolean getSmponly() {
        return smponly;
    }

    public void setSmponly(Boolean smponly) {
        this.smponly = smponly;
    }

    public Boolean getInternalmonitoring() {
        return internalmonitoring;
    }

    public void setInternalmonitoring(Boolean internalmonitoring) {
        this.internalmonitoring = internalmonitoring;
    }

    public Boolean getInterimaudit() {
        return interimaudit;
    }

    public void setInterimaudit(Boolean interimaudit) {
        this.interimaudit = interimaudit;
    }

    public Boolean getFinalaudit() {
        return finalaudit;
    }

    public void setFinalaudit(Boolean finalaudit) {
        this.finalaudit = finalaudit;
    }

    public Boolean getImprequired() {
        return imprequired;
    }

    public void setImprequired(Boolean imprequired) {
        this.imprequired = imprequired;
    }

    public String getImpnotes() {
        return impnotes;
    }

    public void setImpnotes(String impnotes) {
        this.impnotes = impnotes;
    }

    public List<Imp> getImps() {
        return imps;
    }

    public void setImps(List<Imp> imps) {
        this.imps = imps;
    }

    public String getIasolicitor() {
        return iasolicitor;
    }

    public void setIasolicitor(String iasolicitor) {
        this.iasolicitor = iasolicitor;
    }

    public Date getIaselectionmemodue() {
        return iaselectionmemodue;
    }

    public void setIaselectionmemodue(Date iaselectionmemodue) {
        this.iaselectionmemodue = iaselectionmemodue;
    }

    public Date getIaselectionmemoreceived() {
        return iaselectionmemoreceived;
    }

    public void setIaselectionmemoreceived(Date iaselectionmemoreceived) {
        this.iaselectionmemoreceived = iaselectionmemoreceived;
    }

    public Date getIaselectionmemoapproved() {
        return iaselectionmemoapproved;
    }

    public void setIaselectionmemoapproved(Date iaselectionmemoapproved) {
        this.iaselectionmemoapproved = iaselectionmemoapproved;
    }

    public String getIafirm() {
        return iafirm;
    }

    public void setIafirm(String iafirm) {
        this.iafirm = iafirm;
    }

    public Date getIadue() {
        return iadue;
    }

    public void setIadue(Date iadue) {
        this.iadue = iadue;
    }

    public Date getIareceived() {
        return iareceived;
    }

    public void setIareceived(Date iareceived) {
        this.iareceived = iareceived;
    }

    public Date getIaapproved() {
        return iaapproved;
    }

    public void setIaapproved(Date iaapproved) {
        this.iaapproved = iaapproved;
    }

    public Date getIarevisedresolutiondue() {
        return iarevisedresolutiondue;
    }

    public void setIarevisedresolutiondue(Date iarevisedresolutiondue) {
        this.iarevisedresolutiondue = iarevisedresolutiondue;
    }

    public Date getIarevisedresolutionreceived() {
        return iarevisedresolutionreceived;
    }

    public void setIarevisedresolutionreceived(Date iarevisedresolutionreceived) {
        this.iarevisedresolutionreceived = iarevisedresolutionreceived;
    }

    public Date getIarevisedresolutionapproved() {
        return iarevisedresolutionapproved;
    }

    public void setIarevisedresolutionapproved(Date iarevisedresolutionapproved) {
        this.iarevisedresolutionapproved = iarevisedresolutionapproved;
    }

    public Date getIarevisedresolutionoffindingsdue() {
        return iarevisedresolutionoffindingsdue;
    }

    public void setIarevisedresolutionoffindingsdue(Date iarevisedresolutionoffindingsdue) {
        this.iarevisedresolutionoffindingsdue = iarevisedresolutionoffindingsdue;
    }

    public Date getIarevisedresolutionoffindingsreceived() {
        return iarevisedresolutionoffindingsreceived;
    }

    public void setIarevisedresolutionoffindingsreceived(Date iarevisedresolutionoffindingsreceived) {
        this.iarevisedresolutionoffindingsreceived = iarevisedresolutionoffindingsreceived;
    }

    public Date getIarevisedresolutionoffindingsapproved() {
        return iarevisedresolutionoffindingsapproved;
    }

    public void setIarevisedresolutionoffindingsapproved(Date iarevisedresolutionoffindingsapproved) {
        this.iarevisedresolutionoffindingsapproved = iarevisedresolutionoffindingsapproved;
    }

    public Date getIaresolutionoffindingsdue() {
        return iaresolutionoffindingsdue;
    }

    public void setIaresolutionoffindingsdue(Date iaresolutionoffindingsdue) {
        this.iaresolutionoffindingsdue = iaresolutionoffindingsdue;
    }

    public Date getIaresolutionoffindingsreceived() {
        return iaresolutionoffindingsreceived;
    }

    public void setIaresolutionoffindingsreceived(Date iaresolutionoffindingsreceived) {
        this.iaresolutionoffindingsreceived = iaresolutionoffindingsreceived;
    }

    public Date getIaresolutionoffindingsapproved() {
        return iaresolutionoffindingsapproved;
    }

    public void setIaresolutionoffindingsapproved(Date iaresolutionoffindingsapproved) {
        this.iaresolutionoffindingsapproved = iaresolutionoffindingsapproved;
    }

    public String getIamemonotes() {
        return iamemonotes;
    }

    public void setIamemonotes(String iamemonotes) {
        this.iamemonotes = iamemonotes;
    }

    public Date getIaclosedtofile() {
        return iaclosedtofile;
    }

    public void setIaclosedtofile(Date iaclosedtofile) {
        this.iaclosedtofile = iaclosedtofile;
    }

    public String getFasolicitor() {
        return fasolicitor;
    }

    public void setFasolicitor(String fasolicitor) {
        this.fasolicitor = fasolicitor;
    }
    public Date getFaselectionmemoduedate() {
		return faselectionmemoduedate;
	}

	public void setFaselectionmemoduedate(Date faselectionmemoduedate) {
		this.faselectionmemoduedate = faselectionmemoduedate;
	}

    public Date getFaselectionmemodue() {
        return faselectionmemodue;
    }

    public void setFaselectionmemodue(Date faselectionmemodue) {
        this.faselectionmemodue = faselectionmemodue;
    }

    public Date getFaselectionmemoreceived() {
        return faselectionmemoreceived;
    }

    public void setFaselectionmemoreceived(Date faselectionmemoreceived) {
        this.faselectionmemoreceived = faselectionmemoreceived;
    }

    public Date getFaselectionmemoapproved() {
        return faselectionmemoapproved;
    }

    public void setFaselectionmemoapproved(Date faselectionmemoapproved) {
        this.faselectionmemoapproved = faselectionmemoapproved;
    }

    public String getFafirm() {
        return fafirm;
    }

    public void setFafirm(String fafirm) {
        this.fafirm = fafirm;
    }

    public Date getFadue() {
        return fadue;
    }

    public void setFadue(Date fadue) {
        this.fadue = fadue;
    }

    public Date getFareceived() {
        return fareceived;
    }

    public void setFareceived(Date fareceived) {
        this.fareceived = fareceived;
    }

    public Date getFaapproved() {
        return faapproved;
    }

    public void setFaapproved(Date faapproved) {
        this.faapproved = faapproved;
    }

    public Date getFarevisedresolutiondue() {
        return farevisedresolutiondue;
    }

    public void setFarevisedresolutiondue(Date farevisedresolutiondue) {
        this.farevisedresolutiondue = farevisedresolutiondue;
    }

    public Date getFarevisedresolutionreceived() {
        return farevisedresolutionreceived;
    }

    public void setFarevisedresolutionreceived(Date farevisedresolutionreceived) {
        this.farevisedresolutionreceived = farevisedresolutionreceived;
    }

    public Date getFarevisedresolutionapproved() {
        return farevisedresolutionapproved;
    }

    public void setFarevisedresolutionapproved(Date farevisedresolutionapproved) {
        this.farevisedresolutionapproved = farevisedresolutionapproved;
    }

    public Date getFarevisedresolutionoffindingsdue() {
        return farevisedresolutionoffindingsdue;
    }

    public void setFarevisedresolutionoffindingsdue(Date farevisedresolutionoffindingsdue) {
        this.farevisedresolutionoffindingsdue = farevisedresolutionoffindingsdue;
    }

    public Date getFarevisedresolutionoffindingsreceived() {
        return farevisedresolutionoffindingsreceived;
    }

    public void setFarevisedresolutionoffindingsreceived(Date farevisedresolutionoffindingsreceived) {
        this.farevisedresolutionoffindingsreceived = farevisedresolutionoffindingsreceived;
    }

    public Date getFarevisedresolutionoffindingsapproved() {
        return farevisedresolutionoffindingsapproved;
    }

    public void setFarevisedresolutionoffindingsapproved(Date farevisedresolutionoffindingsapproved) {
        this.farevisedresolutionoffindingsapproved = farevisedresolutionoffindingsapproved;
    }

    public Date getFaresolutionoffindingsdue() {
        return faresolutionoffindingsdue;
    }

    public void setFaresolutionoffindingsdue(Date faresolutionoffindingsdue) {
        this.faresolutionoffindingsdue = faresolutionoffindingsdue;
    }

    public Date getFaresolutionoffindingsreceived() {
        return faresolutionoffindingsreceived;
    }

    public void setFaresolutionoffindingsreceived(Date faresolutionoffindingsreceived) {
        this.faresolutionoffindingsreceived = faresolutionoffindingsreceived;
    }

    public Date getFaresolutionoffindingsapproved() {
        return faresolutionoffindingsapproved;
    }

    public void setFaresolutionoffindingsapproved(Date faresolutionoffindingsapproved) {
        this.faresolutionoffindingsapproved = faresolutionoffindingsapproved;
    }

    public String getFamemonotes() {
        return famemonotes;
    }

    public void setFamemonotes(String famemonotes) {
        this.famemonotes = famemonotes;
    }

    public Date getFaclosedtofile() {
        return faclosedtofile;
    }

    public void setFaclosedtofile(Date faclosedtofile) {
        this.faclosedtofile = faclosedtofile;
    }

}